package cn.itcast.bos.service.action.teke_delivary.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.bos.domain.system.Menu;
import cn.itcast.bos.domain.system.User;
import cn.itcast.bos.service.action.teke_delivary.MenuService;
import cn.itcast.bos.web.Dao.teke_delivary.MenuRepository;

@Service
@Transactional
public class MenuServiceImpl implements MenuService {

	// 调用DAO
	@Autowired
	private MenuRepository menuRepository;

	// 查询所有菜单
	@Override
	public List<Menu> findAll() {
		return menuRepository.findAll();
	}

	// 添加菜单数据
	@Override
	public void save(Menu model) {
		// 校验用户有没有选中 父菜单
		if (model.getParentMenu() != null && model.getParentMenu().getId() == 0) {
			model.setParentMenu(null);
		}
		menuRepository.save(model);
	}

	// 动态菜单
	@Override
	public List<Menu> findByUser(User user) {
		// 针对admin 用户显示所有菜单
		if (user.getUsername().equals("admin")) {
			return menuRepository.findAll();
		} else {  
			// 非admin 用户 根据角色查询 显示菜单      根据登录用户Id 去进行查询对应角色  从而决定显示页面
			return menuRepository.findByUser(user.getId());
		}
	}

}
